Skip to content

feat(git): git submodule setting and example web#13

Merged
citron03 merged 1 commit intomainfrom
feat/submodule
Feb 28, 2026
Merged

feat(git): git submodule setting and example web#13
citron03 merged 1 commit intomainfrom
feat/submodule

Conversation

@citron03
Copy link
Owner

No description provided.

@github-actions
Copy link

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

React 버전 정렬 확인

pnpm-lock.yaml에서 @floating-ui/react, @loadable/component, @mdx-js/react, @storybook/react, @storybook/react-vite, @testing-library/react, @xstate/react, react, react-dom, react-color, valtio 등 여러 React 관련 패키지들이 19.2.0에서 19.0.0-rc.0으로 변경된 것으로 보여요. 혹시 19.2.0이 더 최신 버전이거나 안정적인 버전이었다면, 19.0.0-rc.0으로 변경한 특별한 이유가 있을까요? 아니면 특정 React RC 버전으로 통일하려는 의도일까요? 이 부분에 대한 확인이 필요할 것 같아요! 🧐

  version: 0.27.16(react-dom@19.0.0-rc.0(react@19.0.0-rc.0))(react@19.0.0-rc.0)
'@loadable/component':
  specifier: '*'
  version: 5.16.7(react@19.0.0-rc.0)
'@mdx-js/loader':
  specifier: '*'
  version: 3.1.1(webpack@5.104.1(esbuild@0.25.12))
'@mdx-js/react':
  specifier: '*'
  version: 3.1.1(@types/react@19.2.5)(react@19.0.0-rc.0)
'@next/mdx':
  specifier: catalog:mdx
  version: 15.5.7(@mdx-js/loader@3.1.1(webpack@5.104.1(esbuild@0.25.12)))(@mdx-js/react@3.1.1(@types/react@19.2.5)(react@19.0.0-rc.0))
'@storybook/addon-essentials':
  specifier: '*'
  version: 8.6.14(@types/react@19.2.5)(storybook@8.6.14(prettier@3.6.2))
'@storybook/addon-interactions':
  specifier: '*'
  version: 8.6.14(storybook@8.6.14(prettier@3.6.2))
'@storybook/builder-vite':
  specifier: '*'
  version: 8.6.14(storybook@8.6.14(prettier@3.6.2))(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1))
'@storybook/cli':
  specifier: '*'
  version: 8.6.14(@babel/preset-env@7.28.5(@babel/core@7.28.5))(prettier@3.6.2)
'@storybook/react':
  specifier: '*'
  version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.6.2)))(react-dom@19.0.0-rc.0(react@19.0.0-rc.0))(react@19.0.0-rc.0)(storybook@8.6.14(prettier@3.6.2))(typescript@5.9.3)
'@storybook/react-vite':
  specifier: '*'
  version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.6.2)))(react-dom@19.0.0-rc.0(react@19.0.0-rc.0))(react@19.0.0-rc.0)(rollup@4.53.2)(storybook@8.6.14(prettier@3.6.2))(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1))
'@testing-library/jest-dom':
  specifier: '*'
  version: 6.9.1
'@testing-library/react':
  specifier: '*'
  version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.2.3(@types/react@19.2.5))(@types/react@19.2.5)(react-dom@19.0.0-rc.0(react@19.0.0-rc.0))(react@19.0.0-rc.0)
'@testing-library/user-event':
  specifier: '*'
  version: 14.6.1(@testing-library/dom@10.4.0)
'@types/loadable__component':
  specifier: '*'
  version: 5.13.10
'@types/mdx':
  specifier: '*'
  version: 2.0.13
'@types/node':
  specifier: '*'
  version: 24.10.1
'@types/react':
  specifier: '*'
  version: 19.2.5
'@types/react-color':
  specifier: '*'
  version: 3.0.13(@types/react@19.2.5)
'@types/react-dom':
  specifier: '*'
  version: 19.2.3(@types/react@19.2.5)
'@typescript-eslint/eslint-plugin':
  specifier: ^8.46.4
  version: 8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/parser':
  specifier: ^8.46.4
  version: 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@vanilla-extract/css':
  specifier: '*'
  version: 1.17.4
'@vanilla-extract/next-plugin':
  specifier: '*'
  version: 2.4.14(next@15.5.7(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.0.0-rc.0(react@19.0.0-rc.0))(react@19.0.0-rc.0))(webpack@5.104.1(esbuild@0.25.12))
'@vanilla-extract/recipes':
  specifier: '*'
  version: 0.5.7(@vanilla-extract/css@1.17.4)
'@vitejs/plugin-react':
  specifier: '*'
  version: 5.1.1(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1))
'@xstate/react':
  specifier: '*'
  version: 6.0.0(@types/react@19.2.5)(react@19.0.0-rc.0)(xstate@5.24.0)
babel-plugin-react-compiler:
  specifier: '*'
  version: 1.0.0
chalk:
  specifier: '*'
  version: 5.6.2
eslint:
  specifier: ^9.39.1
  version: 9.39.1(jiti@2.6.1)
eslint-config-next:
  specifier: catalog:eslint
  version: 15.5.7(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
eslint-config-prettier:
  specifier: ^10.1.8
  version: 10.1.8(eslint@9.39.1(jiti@2.6.1))
eslint-plugin-import:
  specifier: ^2.32.0
  version: 2.32.0(@typescript-eslint/parser@8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))
eslint-plugin-prettier:
  specifier: ^5.5.4
  version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.6.2)
eslint-plugin-react:
  specifier: ^7.37.5
  version: 7.37.5(eslint@9.39.1(jiti@2.6.1))
eslint-plugin-react-compiler:
  specifier: 19.1.0-rc.2
  version: 19.1.0-rc.2(eslint@9.39.1(jiti@2.6.1))
eslint-plugin-react-hooks:
  specifier: ^7.0.1
  version: 7.0.1(eslint@9.39.1(jiti@2.6.1))
eslint-plugin-simple-import-sort:
  specifier: 'catalog:'
  version: 12.1.0(eslint@9.39.1(jiti@2.6.1))
globals:
  specifier: ^16.5.0
  version: 16.5.0
husky:
  specifier: ^9.1.7
  version: 9.1.7
inquirer:
  specifier: '*'
  version: 12.11.1(@types/node@24.10.1)
js-yaml:
  specifier: ^4.1.1
  version: 4.1.1
jsdom:
  specifier: '*'
  version: 27.2.0
lint-staged:
  specifier: ^16.2.6
  version: 16.2.6
next:
  specifier: catalog:framework
  version: 15.5.7(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.0.0-rc.0(react@19.0.0-rc.0))(react@19.0.0-rc.0)
patch-package:
  specifier: ^8.0.1
  version: 8.0.1
prettier:
  specifier: ^3.6.2
  version: 3.6.2
react:
  specifier: catalog:framework
  version: 19.0.0-rc.0
react-color:
  specifier: '*'
  version: 2.19.3(react@19.0.0-rc.0)
react-dom:
  specifier: catalog:framework
  version: 19.0.0-rc.0(react@19.0.0-rc.0)
storybook:
  specifier: '*'
  version: 8.6.14(prettier@3.6.2)
stylelint:
  specifier: ^16.25.0
  version: 16.25.0(typescript@5.9.3)
stylelint-config-prettier:
  specifier: ^9.0.5
  version: 9.0.5(stylelint@16.25.0(typescript@5.9.3))
stylelint-config-standard:
  specifier: ^39.0.1
  version: 39.0.1(stylelint@16.25.0(typescript@5.9.3))
tui-grid:
  specifier: '*'
  version: 4.21.22(patch_hash=4b3217265fc03cc0453b2424330767f075304ed32208430e3f4d3c73279df85b)
typescript:
  specifier: '*'
  version: 5.9.3
valtio:
  specifier: '*'
  version: 2.2.0(@types/react@19.2.5)(react@19.0.0-rc.0)
ESLint 플러그인 버전 확인

eslint-plugin-react-hooks의 버전이 7.0.1에서 5.2.0으로 다운그레이드된 것으로 보여요. 이 변경이 의도된 것인지, 아니면 다른 ESLint 설정과의 호환성 문제 때문인지 확인해 보면 좋을 것 같아요. 혹시 이전 버전의 룰이 누락되거나 예상치 못한 린팅 오류가 발생할 수도 있으니, 이 부분도 꼼꼼히 체크해 주세요! 🕵️‍♀️

eslint-plugin-react-hooks: 5.2.0(eslint@9.39.1(jiti@2.6.1))

@github-actions
Copy link

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
API 입력 유효성 검사 강화

action 쿼리 파라미터가 유효한 Action 타입 중 하나인지 확인해야 합니다. 현재 구현에서는 유효하지 않은 action 값이 전달될 경우,
의도치 않게 원래 색상을 반환하게 되어 API 사용자가 혼란을 겪을 수 있습니다. 유효하지 않은 action에 대해 명확한 오류 응답을 반환하도록
수정하세요.

apps/web/app/api/submodule-colors/route.ts [21-34]

 if (!action) {
   return NextResponse.json({ error: 'action is required' }, { status: 400 });
+}
+
+const validActions: Action[] = ['pastel', 'complementary', 'lighten', 'darken'];
+if (!validActions.includes(action)) {
+  return NextResponse.json({ error: `Invalid action: ${action}. Must be one of ${validActions.join(', ')}` }, { status: 400 });
 }
 
 if (action !== 'pastel' && !isHexColor(color)) {
   return NextResponse.json({ error: 'color must be #RRGGBB format' }, { status: 400 });
 }
 
 let nextColor = color;
 
 if (action === 'pastel') nextColor = pasteltoneHex();
-if (action === 'complementary') nextColor = complementaryColorHex(color);
-if (action === 'lighten') nextColor = lightenHex(color, 0.1);
-if (action === 'darken') nextColor = darkenHex(color, 0.1);
+else if (action === 'complementary') nextColor = complementaryColorHex(color);
+else if (action === 'lighten') nextColor = lightenHex(color, 0.1);
+else if (action === 'darken') nextColor = darkenHex(color, 0.1);
Suggestion importance[1-10]: 8

__

Why: The suggestion correctly identifies a missing validation for the action parameter. Without this, an invalid action would silently return the original color, leading to confusing API behavior. The proposed if/else if structure also improves the logic flow.

Medium

@citron03 citron03 merged commit 31ce0d7 into main Feb 28, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant